# Contributor: Taner Tas <taner76@gmail.com>
# Maintainer: Taner Tas <taner76@gmail.com>
pkgname=openfire
pkgver=4.7.5
pkgrel=0
pkgdesc="Openfire is a cross-platform real-time collaboration server based on the XMPP (Jabber) protocol."
url="https://www.igniterealtime.org/projects/openfire/"
# riscv64 blocked by openjdk8
arch="all !riscv64"
license="Apache-2.0"
depends="java-jre-headless"
makedepends="maven"
subpackages="$pkgname-plugins::noarch $pkgname-openrc"
source="
	$pkgname-$pkgver.tar.gz::https://github.com/igniterealtime/Openfire/archive/refs/tags/v$pkgver.tar.gz
	$pkgname.initd
	$pkgname.confd
	$pkgname.logrotate
	"
pkgusers="openfire"
pkggroups="openfire"
install="
	$pkgname.pre-install
	openfire.post-install
	openfire.post-upgrade
	"
options="net !check" # No test suite
_ofhome="/var/lib/openfire"
builddir="$srcdir/Openfire-$pkgver"

# secfixes:
#   4.7.5-r0:
#     - CVE-2023-32315

build() {
	rm -rf distribution/src/nativeAuth
	mvn package -Dmaven.test.skip=true
}

package() {
	install -dm0755 "$pkgdir/$_ofhome"
	install -dm0755 "$pkgdir/$_ofhome"/plugins

	cp -r distribution/target/distribution-base/conf "$pkgdir/$_ofhome"/
	cp -r distribution/target/distribution-base/lib "$pkgdir/$_ofhome"/
	cp -r distribution/target/distribution-base/resources "$pkgdir/$_ofhome"/
	cp -r distribution/target/distribution-base/plugins/admin "$pkgdir/$_ofhome"/plugins/

	find "$pkgdir" -type f -exec chmod 0644 {} \;
	find "$pkgdir" -type d -exec chmod 0755 {} \;
	find "$pkgdir" -type d -exec chmod u-s,g-s {} \;

	chmod 0700 "$pkgdir/$_ofhome"/conf \
		"$pkgdir/$_ofhome"/resources/security

	cd "$pkgdir/$_ofhome"/conf
	for i in openfire.xml security.xml
	do
		mv "$i" "$i".default
		chmod 0600 "$i".default
	done

	cd "$pkgdir/$_ofhome"/resources/security
	for i in client.truststore keystore truststore
	do
		mv "$i" "$i".default
		chmod 0600 "$i".default
	done

	chown -R $pkgusers:$pkggroups "$pkgdir/$_ofhome"

	install -Dm0755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
	install -Dm0644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
	install -Dm0644 "$srcdir"/$pkgname.logrotate "$pkgdir"/etc/logrotate.d/$pkgname

}

plugins() {
	cd "$builddir"
	install -dm755 "$subpkgdir/$_ofhome"/plugins
	cp distribution/target/distribution-base/plugins/*.jar "$subpkgdir/$_ofhome"/plugins/
	chown -R $pkgusers:$pkggroups "$subpkgdir/$_ofhome"
}

sha512sums="
c17a5a98a64b73d50977a450053162662211f3dc5385c635abddcb3e9e0abab5f9eb5493c2efd0b6014a07f55afb83cea66c926a331cc7e4d8e204451d7361b8  openfire-4.7.5.tar.gz
95a486898b84c4b7b0e3a60ceb7ccbb5d383451228b9c5090dc58513afc9513095e6c124e2ef170912376a7179d058b106d3bbd69db7b7204ff5f1be13823bdc  openfire.initd
e952b1dbf10df6c8303f6e71ae08853a1901cbf92f059c3dc927e0085365e6c4752d2c5ddaa9ce1da944a164ee0f29b1057e10a61840814bff3722020253b5bf  openfire.confd
e17684600700c85d366549b7ac9fec64b9abcd1fd53e131e2d5b9d53514865ad0eacb25618dfc6c264af25fb880e761cdd7349bdcbc22c1f65a6fa7444dcd2a7  openfire.logrotate
"
